"""
并行处理示例
功能：演示如何使用 .map() 和 .spawn() 进行并行任务处理
特点：.map() 用于批量处理，.spawn() 用于异步启动任务
运行：modal run 17_parallel_processing.py
"""
import modal

app = modal.App("parallel-app")

@app.function()
def process_item(item):
    return item * item

@app.local_entrypoint()
def main():
    # 使用 .map() 并行处理列表
    results = list(process_item.map(range(10)))
    print("Map results:", results)

    # 使用 .spawn() 启动多个任务
    calls = [process_item.spawn(i) for i in range(10, 15)]
    print("Spawned 5 calls.")
    
    # 可以稍后获取结果
    spawn_results = [call.get() for call in calls]
    print("Spawn results:", spawn_results)